NODEPULSE: Yüksek Performanslı ve Önbellek Mekanizmalı Kullanıcı Yönetim API'si

NodePulse API Başarılı İşlem

✨ Proje Özeti ve Mühendislik Yaklaşımı

Bu proje, modern backend mimarilerinde karşılaşılan yüksek trafik ve veri tutarlılığı problemlerine çözüm sunmak amacıyla geliştirilmiştir. **NodePulse**, sadece veri kaydeden bir sistem değil, Redis caching stratejileri ve çok katmanlı güvenlik önlemleriyle donatılmış, ölçeklenebilir bir **RESTful API** altyapısıdır.

Kullanılan Temel Teknolojiler:

  • Node.js & Express
  • MongoDB Atlas (NoSQL)
  • Redis (Caching)
  • Joi (Data Validation)
  • Winston (Logging)
  • Rate Limiting & Helmet
  • MVC Architecture

Sistem Analizi ve Log Akışı

Backend operasyonlarının doğruluğunu ve performansını gösteren sistem çıktıları aşağıda incelenebilir.


1. Kritik Çözüm: Redis Caching ve Invalidation

Veritabanı maliyetlerini düşürmek ve kullanıcı deneyimini iyileştirmek için çift katmanlı bir veri okuma stratejisi uygulanmıştır.

Akıllı Önbellekleme Stratejisi

Kullanıcı istatistikleri sorgulandığında, sistem önce Redis belleğini kontrol eder. Veri mevcutsa milisaniyeler içinde döner. Veri mevcut değilse (Cache Miss), MongoDB'den çekilerek Redis'e işlenir.

Veri Tutarlılığı (Cache Invalidation)

En kritik mühendislik çözümlerinden biri şudur: **Kullanıcının puanı veya bilgisi güncellendiğinde, Redis üzerindeki eski kayıt anında silinir.** Bu sayede kullanıcının her zaman güncel veriyi görmesi garanti altına alınmış olur.


2. Güvenlik ve Veri Doğrulama (Validation)

API güvenliği, istek sunucuya ulaştığı andan itibaren çok katmanlı bir kontrolden geçer.

Joi Middleware Entegrasyonu

Gelen istek gövdeleri (request body), Controller katmanına ulaşmadan önce Joi şemalarıyla doğrulanır. Hatalı e-posta formatı, yetersiz karakter sayısı gibi durumlar veritabanına ulaşmadan **400 Bad Request** ile geri çevrilir.

Sistem Koruması (Rate Limiting)

Brute-force saldırılarını önlemek amacıyla her IP adresi için belirli bir süre zarfında yapılabilecek istek sayısı sınırlandırılmıştır.


3. Dinamik İş Mantığı: Seviye Algoritması

Uygulama, ham veri kaydetmenin ötesinde bir "iş zekasına" sahiptir.

Otomatik Seviye Atlatma (Level Up)

Kullanıcıların puanları güncellendiğinde, sistem arka planda otomatik olarak puan kontrolü yapar:

  • 500+ Puan: Gold
  • 1000+ Puan: Pro
  • 2000+ Puan: Elite
Bu işlem, kodun sadece veri taşıyıcı değil, kural koyucu olduğunu kanıtlar.


4. İzlenebilirlik ve Hata Yönetimi

Winston ile Profesyonel Loglama

Uygulamada meydana gelen tüm kritik olaylar ve hatalar `winston` kütüphanesi ile loglanır. Hatalar `error.log` dosyasında, genel akış ise `combined.log` dosyasında asenkron olarak saklanır.

Merkezi Hata Yakalayıcı (Global Error Handler)

Tüm `try-catch` bloklarından fırlatılan hatalar merkezi bir middleware'de toplanır. Bu, uygulamanın çökmesini engeller ve kullanıcıya her zaman standart, temiz bir JSON hata mesajı dönmesini sağlar.


Projenin Kaynak Kodlarını İnceleyin